// 一、通过expres 构建服务器 
const express = require("express");
const path = require('path');
const mongoose = require('mongoose');
// 连接数据库 mongodb
mongoose.connect('mongodb://127.0.0.1/mynews',err=>{
    if(err){
        return console.log(err);
    }
    console.log('数据库连接成功');
})

// 建立骨架
let schema = mongoose.Schema({
    title:String,
    detail:String,
    addtime:String
})

// 和集合建立关系
let newsModel = mongoose.model('lists',schema);
let app = express();
// 设置 views的路径，设置模版引擎   ./views路径可以改
app.set('views','./views')

// 设置模版引擎
app.set('view engine','ejs');

app.use(express.static(path.join(__dirname,'./static')))  // static 相对地址和绝对都可以

// ctx: context 上下文， koa ---》 ctx
app.get('/',async(req,res)=>{

    // res.send('hello')
    // 需要获取新闻列表的数据
    let data = await newsModel.find();
    console.log(data);
    // 把获得的data推到index.ejs模版上
    res.render('index.ejs',{data}); // render是ejs模块的方法
})

// 路由。显示详细信息
app.get('/detail',async(req,res)=>{
    // 接收 get携带过来的querystring参数
    let {_id} =req.query;
    console.log(_id); // 通过_id,查询到具体的数据
    let [detailData] = await newsModel.find({_id:_id});// 前id是 数据库的，后id是解构出来的，可以简写_id
    console.log(detailData);

    // 把获得的detailData推到detail.ejs模版上
    res.render('detail.ejs',{detailData});
})

app.listen(8989);